package com.ly.heart.domain;

import java.util.Date;
import java.util.List;

import com.baomidou.mybatisplus.annotation.IdType;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.ly.common.core.domain.BaseEntity;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ly.common.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

/**
 * 勘测收益测算对象 erp_survey_revenue_info
 * @author wutao
 * @date 2024-05-22
 */
@TableName ("erp_survey_revenue_info")
@ApiModel (value = "erp_survey_revenue_info对象" , description = "勘测收益测算")
@Data
public class SurveyRevenueEntity extends BaseEntity {

    private static final long serialVersionUID = 1L;

    /**
     * id
     */
    @TableId (value = "id" , type = IdType.INPUT)
    private String id;

    /**
     * 客户Id
     */
    @ApiModelProperty ("客户Id")
    @TableField ("customer_id")
    @Excel (name = "客户Id")
    private String customerId;

    /**
     * 勘测报告Id，获取报告所填内容
     */
    @ApiModelProperty ("勘测报告Id，获取报告所填内容")
    @TableField ("survey_report_id")
    @Excel (name = "勘测报告Id，获取报告所填内容")
    private String surveyReportId;

    /**
     * 是否为自投;1:是;2:否
     */
    @ApiModelProperty ("是否为自投;1:是;2:否")
    @TableField ("is_self")
    @Excel (name = "是否为自投;1:是;2:否")
    private Integer isSelf;

    /**
     * 屋顶方
     */
    @ApiModelProperty ("屋顶方")
    @TableField ("roof")
    @Excel (name = "屋顶方")
    private String roof;

    /**
     * 预计装机容量
     */
    @ApiModelProperty ("预计装机容量")
    @TableField ("plan_installed_capacity")
    @Excel (name = "预计装机容量")
    private String planInstalledCapacity;

    /**
     * 消纳比例
     */
    @ApiModelProperty ("消纳比例")
    @TableField ("consume_rate")
    @Excel (name = "消纳比例")
    private String consumeRate;

    /**
     * 公司项目类型
     */
    @ApiModelProperty ("公司项目类型")
    @TableField ("project_type")
    @Excel (name = "公司项目类型")
    private String projectType;

    /**
     * 评估意见
     */
    @ApiModelProperty ("评估意见")
    @TableField ("assess")
    @Excel (name = "评估意见")
    private String assess;

    /**
     * 填写人Id，登录用户Id
     */
    @ApiModelProperty ("填写人Id，登录用户Id")
    @TableField ("user_id")
    @Excel (name = "填写人Id，登录用户Id")
    private String userId;

    /**
     * 投资方收益测算附件
     */
    @ApiModelProperty ("投资方收益测算附件")
    @TableField ("investor_annex")
    @Excel (name = "投资方收益测算附件")
    private String investorAnnex;

    /**
     * 自投收益测算附件
     */
    @ApiModelProperty ("自投收益测算附件")
    @TableField ("self_annex")
    @Excel (name = "自投收益测算附件")
    private String selfAnnex;

    /**
     * 更新时间
     */
    @ApiModelProperty ("更新时间")
    @TableField ("change_time")
    @JsonFormat (pattern = "yyyy-MM-dd")
    @Excel (name = "更新时间" , width = 30, dateFormat = "yyyy-MM-dd")
    private Date changeTime;

    /**
     * $column.columnComment
     */
    @ApiModelProperty ("更新时间")
    @TableField ("is_used")
    @Excel (name = "更新时间")
    private Integer isUsed;

    @ApiModelProperty ("收益测算主数据附件")
    @TableField (exist = false)
    private List<FileEntity> fileEntities;

    @ApiModelProperty ("收益测算投资方附件")
    @TableField (exist = false)
    private List<FileEntity> investorFileEntities;

    @ApiModelProperty ("收益测算自投附件")
    @TableField (exist = false)
    private List<FileEntity> selfFileEntities;


    @Override
    public String toString () {
        return new ToStringBuilder ( this, ToStringStyle.MULTI_LINE_STYLE )
                .append ( "id" , getId () )
                .append ( "customerId" , getCustomerId () )
                .append ( "surveyReportId" , getSurveyReportId () )
                .append ( "isSelf" , getIsSelf () )
                .append ( "roof" , getRoof () )
                .append ( "planInstalledCapacity" , getPlanInstalledCapacity () )
                .append ( "consumeRate" , getConsumeRate () )
                .append ( "projectType" , getProjectType () )
                .append ( "assess" , getAssess () )
                .append ( "userId" , getUserId () )
                .append ( "investorAnnex" , getInvestorAnnex () )
                .append ( "selfAnnex" , getSelfAnnex () )
                .append ( "createTime" , getCreateTime () )
                .append ( "changeTime" , getChangeTime () )
                .append ( "isUsed" , getIsUsed () )
                .toString ();
    }
}
